The present invention is in the area of computer graphical user interfaces (GUIs). It can be used in applications that display tabular data in a scrollable grid, allowing user interaction to update the tabular data. Embodiments of the invention include methods to display and interact with tabular data, tangible non-transitory media including such methods, and computer systems executing such methods.
GUI developer uses software components (software components are also called controls or widgets) to build a GUI for a software application. One of the most basic software components is a window, a rectangular area that has a width and a height, a position on the computer screen, and one or more rendering properties, such as a color. A window can contain other software components, but it can also be used as the basis for a more complex software component, such as a button, a text field, a dropdown box, a menu, a scrollbar, etc.
Data grids are software components used to display tabular data, often in a text form. The tabular data may be presented in an X-direction (a row), in a Y-direction (a column), and a Z-direction—usually in the form of multiple tabs, each containing a field containing rows and columns. Typically, rows are preceded by a row header identifying the row location and columns are preceded by a column header identifying the column location. For example, Microsoft Excel displays worksheets (data grids) in which row headers show row numbers (1 . . . 1,048,576), and column headers show column letter combinations (A . . . XFD).
Conventional data grids are primarily directed towards displaying text and numbers. However, advanced data grids, including those used in Microsoft Excel, OpenOffice Calc, LibreOffice Calc and those available in GUI development environments such as NetBeans, Qt, etc., have many more capabilities, including formatting of text fonts, rendering backgrounds of individual cells or cell ranges, overlaying the data grid with bitmaps, vector-based graphics or other objects, populating an individual cell with a widget such as a dropdown box, and even populating an individual cell with a graph. Navigation can be an issue. For example, using the Tab and arrow keys, an Excel user can either navigate the functions in the ribbon, or navigate the cells of a data grid, or navigate objects overlaying the data grid. Use of the Alt and ESC keys allows some means of switching between different types of navigation, but no simple intuitive way is provided to navigate from a cell to an object overlaying a worksheet using just a keyboard.
Embodiments of the invention address issues including rendering performance, navigation, cell style, and provide header innovation.